export class ErrorMessage {
  static DistinctSigns = "Distinct signs.";
  static WrongArgNumber = "Wrong number of arguments.";
  static EmptyArg = "Empty function argument.";
  static EmptyArray = "Empty array not allowed.";
  static ArrayDimensions = "Array dimensions are not compatible.";
  static NoSpaceForArrayResult = "No space for array result.";
  static ValueSmall = "Value too small.";
  static ValueLarge = "Value too large.";
  static BadCriterion = "Incorrect criterion.";
  static RangeManySheets = "Range spans more than one sheet.";
  static CellRangeExpected = "Cell range expected.";
  static WrongDimension = "Wrong range dimension.";
  static ScalarExpected = "Cell range not allowed.";
  static NumberCoercion = "Value cannot be coerced to number.";
  static NumberExpected = "Number argument expected.";
  static IntegerExpected = "Value needs to be an integer.";
  static BadMode = "Mode not recognized.";
  static DateBounds = "Date outside of bounds.";
  static OutOfSheet = "Resulting reference is out of the sheet.";
  static WrongType = "Wrong type of argument.";
  static NaN = "NaN or infinite value encountered.";
  static EqualLength = "Ranges need to be of equal length.";
  static Negative = "Value cannot be negative.";
  static NotBinary = "String does not represent a binary number.";
  static NotOctal = "String does not represent an octal number.";
  static NotHex = "String does not represent a hexadecimal number.";
  static EndStartPeriod = "End period needs to be at least start period.";
  static CellRefExpected = "Cell reference expected.";
  static EmptyRange = "Empty range not allowed.";
  static BadRef = "Address is not correct.";
  static NumberRange = "Number-only range expected.";
  static ValueNotFound = "Value not found.";
  static ValueBaseLarge = "Value in base too large.";
  static ValueBaseSmall = "Value in base too small.";
  static ValueBaseLong = "Value in base too long.";
  static NegativeLength = "Length cannot be negative.";
  static PatternNotFound = "Pattern not found.";
  static OneValue = "Needs at least one value.";
  static TwoValues = "Range needs to contain at least two elements.";
  static ThreeValues = "Range needs to contain at least three elements.";
  static IndexBounds = "Index out of bounds.";
  static IndexLarge = "Index too large.";
  static Formula = "Expected formula.";
  static NegativeCount = "Count cannot be negative.";
  static ParseError = "Parsing error.";
  static SheetRef = "Sheet does not exist.";
  static PeriodLong = "Period number cannot exceed life length.";
  static InvalidDate = "Invalid date.";
  static BitshiftLong = "Result of bitshift is too long.";
  static EmptyString = "Empty-string argument not allowed.";
  static LengthBounds = "Length out of bounds.";
  static NegativeTime = "Time cannot be negative.";
  static NoDefault = "No default option.";
  static NoConditionMet = "None of the conditions were met.";
  static Selector = "Selector cannot exceed the number of arguments.";
  static StartEndDate = "Start date needs to be earlier than end date.";
  static IncorrectDateTime = "String does not represent correct DateTime.";
  static CharacterCodeBounds = "Character code out of bounds.";
  static NonZero = "Argument cannot be 0.";
  static LessThanOne = "Argument cannot be less than 1.";
  static WeekendString = "Incorrect weekend bitmask string.";
  static InvalidRoman = "Invalid roman numeral.";
  static WrongOrder = "Wrong order of values.";
  static ComplexNumberExpected = "Complex number expected.";
  static ShouldBeIorJ = "Should be 'i' or 'j'.";
  static SizeMismatch = "Array dimensions mismatched.";
  static FunctionName = (arg: string) => `Function name ${arg} not recognized.`;
  static NamedExpressionName = (arg: string) =>
    `Named expression ${arg} not recognized.`;
  static LicenseKey = (arg: string) => `License key is ${arg}.`;
}